#include "sendConfigInfo.h"
extern gchar* gateWayIp;

// 回调函数用于接收响应数据
static size_t sendConfigCallback(void *contents, size_t size, size_t nmemb, void *userp) {
    size_t realsize = size * nmemb;
    // 这里可以处理获取到的数据，比如存储到文件或者其他操作
    char * result = (char *)contents;
    cJSON* root = cJSON_Parse(result);
    cJSON* successJson = cJSON_GetObjectItemCaseSensitive(root,"success");
    cJSON* codeJson = cJSON_GetObjectItemCaseSensitive(root,"code");
    cJSON* messageJson = cJSON_GetObjectItemCaseSensitive(root,"message");
    printf("success=%s ,code=%d ,message =%s\n",successJson->valuestring,codeJson->valueint,messageJson->valuestring);
    return realsize;
}

void sendConfig(gchar* sn){
    gchar* location;

    //获取location和gateWayIp
    GKeyFile* keyFile = g_key_file_new();//用于读取文件

    //在这里可以使用config.ini来存储真正的配置文件地址
    //这样可以方便移植
    //链接存放地址的配置文件，读取真正配置文件（存放前端请求的数据文件的地址）地址
    if(!g_key_file_load_from_file(keyFile,"./config.ini",G_KEY_FILE_NONE,NULL)){
        g_warning("load config.ini error!");
    }
    //读取信息
    gchar* data = g_key_file_get_string(keyFile,"config","devPath",NULL);

    GKeyFile* devFile = g_key_file_new();//用于存放数据

    if(!g_key_file_load_from_file(devFile,data,G_KEY_FILE_NONE,NULL)){
        g_warning("load config.ini error!");
    }

    //获取相关配置信息  这里获取到了ip，同时我也获取了location，但是只返回了ip
    gateWayIp = g_key_file_get_string(devFile,"config","gatewayIp",NULL);
    location = g_key_file_get_string(devFile,"config","location",NULL);
    g_key_file_free(keyFile);
    g_key_file_free(devFile);

    char* urlFormat = "http://%s/config.json?location=%s&sn=%s";
    char* url = calloc(1,128);
    sprintf(url,urlFormat,gateWayIp,location,sn);
    //发送配置信息
    sendGetRequest(url,sendConfigCallback);
    free(url);
}